import ConfigParser

class options:
	"""Classe gerant la lecture seule du fichier de configuration 'backup.cfg'.
	"""
	
	def __init__(self, fileName="backup.cfg",):
		"""Lecture du fichier de configuration.
		La gestion des erreurs de lecture n'est pas prise ici en compte.
		"""
		self._config = ConfigParser.ConfigParser()
		self._config.read(fileName)
	
	def getInt(self, sectionName, keyName, defaultValue=0,):
		"""Lecture d'une valeur entiere.
		"""
		value = self._config.get(sectionName, keyName, defaultValue)
		return int(value)
	
	def getBool(self, sectionName, keyName, defaultValue=False,):
		"""Lecture d'un entier retourne en booleen.
		"""
		if defaultValue:
			defVal = 0
		else:
			defVal = 1
		
		value = self._config.get(sectionName, keyName, defaultValue)
		if "0" == value:
			return False
		return True
	
	def getString(self, sectionName, keyName, defaultValue="",):
		"""Retourne une chaine.
		"""
		return self._config.get(sectionName, keyName, defaultValue)
	
	def getBackupString(self, backupNumber, keyName):
		"""Retourne une valeur d'un bloc de backup sous la forme de chaine.
		"""
		sectionName = "BACKUP_%03d"%backupNumber
		return self._config.get(sectionName, keyName, "")
	
	def getBackupInt(self, backupNumber, keyName, defaultValue=30):
		"""Retourne une valeur numerique.
		"""
		sectionName = "BACKUP_%03d"%backupNumber
		value = self._config.get(sectionName, keyName, defaultValue)
		return int(value)
